// src/api/request.js

import axios from 'axios';

// 创建 axios 实例
let service = axios.create({
  baseURL: 'http://127.0.0.1:4523/m1/5933980-5621385-default', // 设置请求的基础URL
  timeout: 5000, // 设置超时时间
  headers: {
    'Content-Type': 'application/json'
  }
});


// 请求拦截器
service.interceptors.request.use(
  (config) => {
    // 从localStorage获取token
    const token = localStorage.getItem('token');
    // 如果token存在，则添加到请求头中
    if (token) {
      config.headers['Authorization'] = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    console.error('请求错误:', error);
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  (response) => {
    // 对响应数据做点什么
    return response.data; // 返回数据的data部分
  },
  (error) => {
    // 对响应错误做点什么
    console.error('响应错误:', error);
    if (error.response) {
      switch (error.response.status) {
        case 401:
          console.error('未授权');
          break;
        case 403:
          console.error('禁止访问');
          break;
        case 404:
          console.error('请求资源未找到');
          break;
        case 500:
          console.error('服务器内部错误');
          break;
        default:
          console.error('其他错误:', error.message);
      }
    }
    return Promise.reject(error);
  }
);

// 封装请求方法
const request = {
  get(url, params = {}) {
    return service.get(url, { params });
  },
  post(url, data = {}) {
    return service.post(url, data);
  },
  put(url, data = {}) {
    return service.put(url, data);
  },
  delete(url, params = {}) {
    return service.delete(url, { params });
  }
};

export default request;